

# UseFetchReturnType

<div class="api-docs__separator" data-reactroot="">

---

</div><div class="api-docs__import" data-reactroot="">

```ts
import { UseFetchReturnType } from "@hyper-fetch/react"
```

</div><div class="api-docs__section">

## Description

</div><div class="api-docs__description"><span class="api-docs__do-not-parse">



</span></div><p class="api-docs__definition">

Defined in [react/src/hooks/use-fetch/use-fetch.types.ts:87](https://github.com/BetterTyped/hyper-fetch/blob/c44d728f/packages/react/src/hooks/use-fetch/use-fetch.types.ts#L87)

</p><div class="api-docs__section">

## Preview

</div><div class="api-docs__preview type single">

```ts
type UseFetchReturnType<T> = UseTrackedStateType<T> & UseTrackedStateActions<T> & UseRequestEventsActionsType<T> & { bounce: { active: boolean; reset: () => void }; revalidate: (invalidateKey?: InvalidationKeyType | InvalidationKeyType[]) => void };
```

</div><div class="api-docs__section">

## Structure

</div><div class="api-docs__returns">

```ts
{
  additionalData: T extends BaseAdapterType<any, any, any, infer A, any> ? A : never;
  data: null | T extends Request<infer D, any, any, any, any, any, any, any, any, any> ? D : never;
  error: null | T extends Request<any, any, any, infer G, infer L, any, any, any, any, any> ? \G\ | \L\ : never;
  isSuccess: boolean;
  loading: boolean;
  retries: number;
  status: T extends BaseAdapterType<any, any, infer S, any, any> ? S : never;
  timestamp: null | Date;
  setAdditionalData: (additionalData: ExtractAdapterAdditionalDataType<ExtractAdapterType<T>>, emitToCache?: boolean) => void;
  setData: (data: ExtractResponseType<T>, emitToCache?: boolean) => void;
  setError: (error: ExtractErrorType<T>, emitToCache?: boolean) => void;
  setIsSuccess: (isSuccess: boolean, emitToCache?: boolean) => void;
  setLoading: (loading: boolean, emitToHooks?: boolean) => void;
  setRetries: (retries: number, emitToCache?: boolean) => void;
  setStatus: (status: ExtractAdapterStatusType<ExtractAdapterType<T>>, emitToCache?: boolean) => void;
  setTimestamp: (timestamp: Date, emitToCache?: boolean) => void;
  abort: () => void;
  onAbort: (callback: OnErrorCallbackType<T>) => void;
  onDownloadProgress: (callback: OnProgressCallbackType) => void;
  onError: (callback: OnErrorCallbackType<T>) => void;
  onFinished: (callback: OnFinishedCallbackType<T>) => void;
  onOfflineError: (callback: OnErrorCallbackType<T>) => void;
  onRequestStart: (callback: OnStartCallbackType<T>) => void;
  onResponseStart: (callback: OnStartCallbackType<T>) => void;
  onSuccess: (callback: OnSuccessCallbackType<T>) => void;
  onUploadProgress: (callback: OnProgressCallbackType) => void;
  bounce: {
    active: boolean;
    reset: () => void;
  };
  revalidate: (invalidateKey?: InvalidationKeyType | InvalidationKeyType[]) => void;
}
```

</div>